package org.jeecg.entity.basedata;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.validator.constraints.NotEmpty;
import org.jeecg.common.aspect.annotation.Dict;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;

/**
 * @Description: 房间
 * @Author: jeecg-boot
 * @Date:   2019-07-03
 * @Version: V1.0
 */
@Data
@TableName("base_room")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="base_room对象", description="房间")
public class BaseRoom {
    
	/**房间ID*/
	@TableId(type = IdType.ID_WORKER_STR)
    @ApiModelProperty(value = "房间ID")
	private String id;
	/**项目ID*/

    @ApiModelProperty(value = "项目ID")
	@Dict(dicCode = "id",dictTable="base_project",dicText="name")
	private String projectId;

	/**楼宇ID*/
    @ApiModelProperty(value = "楼宇ID")
	@Dict(dicCode = "id",dictTable="base_floor",dicText="name")
	private String floorId;
	/**单元ID*/

    @ApiModelProperty(value = "单元ID")
//	@Dict(dicCode = "id",dictTable="base_unit",dicText="name")
	private String unitId;
	/**房间编号*/
	@Excel(name = "房间编号", width = 15)
    @ApiModelProperty(value = "房间编号")
	private String code;
	/**房间全称*/
	@Excel(name = "房间全称", width = 15)
    @ApiModelProperty(value = "房间全称")
	private String name;
	@Excel(name = "产权人", width = 15)
    @ApiModelProperty(value = "产权人")
	private String owner;
	/**房间所在楼层*/
	@Excel(name = "房间所在楼层", width = 15)
    @ApiModelProperty(value = "房间所在楼层")
	@Dict(dicCode = "floor_num")
	private String floorNum;
	/**房间属性*/
	@Excel(name = "房间属性", width = 15)
    @ApiModelProperty(value = "房间属性")
	@Dict(dicCode = "room_property")
	private Integer roomProperty;


	/**房间状态*/
	@Excel(name = "房间状态", width = 15)
    @ApiModelProperty(value = "房间状态")
	@Dict(dicCode = "room_status")
	private Integer roomStatus;

//	@Excel(name = "出租状态", width = 15)
//	@ApiModelProperty(value = "出租状态")
//	@Dict(dicCode = "rent_status")
//	private Integer rentStatus;

	/**建筑面积*/
	@Excel(name = "建筑面积", width = 15)
    @ApiModelProperty(value = "建筑面积")
	private java.math.BigDecimal buildArea;

	/**删除标识*/
	@TableLogic
	@Excel(name = "删除标识", width = 15)
    @ApiModelProperty(value = "删除标识")
	private String delFlag;
	/**创建人*/
	@Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
	private String createBy;
	/**创建时间*/
	@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
	private Date createTime;
	/**更新人*/
	@Excel(name = "更新人", width = 15)
    @ApiModelProperty(value = "更新人")
	private String updateBy;
	/**更新时间*/
	@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
	private Date updateTime;

	@TableField(exist = false)
	private  String  customerName;

	@TableField(exist = false)
	private  String  cusOrTentId;

	@TableField(exist = false)
	private String startDate;

	@TableField(exist = false)
	private String address;
	/**
	 * 整改字段
	 */
	//拆合老房间id
	private String splitRefId;
	//新房间类型(1合并 2拆分)
	private Integer splitType;
	//住户收费时间
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	private Date feeStartDate;
    @TableField(exist = false)
	private List<String> areaList;
    @TableField(exist = false)
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd ")
	private List<Date> feeStartDateList;
    @TableField(exist = false)
	private List<String> numList;
	/**
	 * 欠费账单:1
	 * 作废账单:2
	 */
	@TableField(exist = false)
	private Integer billsStatus;
	//房间拆分日期
	private String  spiltDate;


	@TableField(exist = false)
	private Integer isBindFee;
	@TableField(exist = false)
	private String feeRuleId;
	@TableField(exist = false)
	private String feeId;
	@TableField(exist = false)
	private String feeLastDate;

	@TableField(exist = false)
	private List<String> idList;
}
